package com.ktgj.customer.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktgj.common.core.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 辅营产品对象 assist_product
 * 
 * @author ruoyi
 * @date 2021-12-20
 */
public class AssistProductApi implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String name;

    /** 产品渠道ID */
    @Excel(name = "产品渠道ID")
    private Long channelId;

    /** 简介 */
    @Excel(name = "简介")
    private String describe;

    /** 航空公司 二字码集合 */
    @Excel(name = "航空公司 二字码集合")
    private String airlines;
    private List<String> airlineList;

    /** 最小购买份数 -1不限制 */
    @Excel(name = "最小购买份数 -1不限制")
    private Long buyMinnum;

    /** 最大最大份数 -1不限制 */
    @Excel(name = "最大最大份数 -1不限制")
    private Long buyMaxnum;

    /** 时间限制 1:当日不可预定；2:当天航班显示 3:不限制 */
    @Excel(name = "时间限制 1:当日不可预定；2:当天航班显示 3:不限制")
    private String datelimit;

    /** 预订开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预订开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookingDateStart;

    /** 预订结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预订结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookingDateEnd;

    /** 起飞开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "起飞开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date departureDateStart;

    /** 起飞结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "起飞结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date departureDateEnd;

    /** 绑定的机票类型 自有|携程|春秋... */
    @Excel(name = "绑定的机票类型 自有|携程|春秋...")
    private String bindticketType;
    private List<String> bindticketTypeList;

    /** 客票类型（-1不限制，1三不准，2正常客票，3正常特价） */
    @Excel(name = "客票类型", readConverterExp = "-=1不限制，1三不准，2正常客票，3正常特价")
    private String ticketType;

    /** 航班类型 单程，往返，多程 */
    @Excel(name = "航班类型 单程，往返，多程")
    private String tripType;
    private List<String> tripTypeList;

    /** 展示位置 1舱位列表 2预订页面 用","隔开 */
    @Excel(name = "展示位置 1舱位列表 2预订页面 用','隔开")
    private String showLocation;
    private List<String> showLocationList;

    /** 展示渠道 */
    @Excel(name = "展示渠道")
    private String showChannel;
    private List<String> showChannelList;

    /** 最小年龄限制 天 */
    @Excel(name = "最小年龄限制 天")
    private Long ageMinnum;

    /** 最大年龄限制 天 */
    @Excel(name = "最大年龄限制 天")
    private Long ageMaxnum;

    /** 销售，结算价数据类型 0:按金额 1:按比例 */
    @Excel(name = "销售，结算价数据类型 0:按金额 1:按比例")
    private String priceType;

    /** 销售价格 */
    @Excel(name = "销售价格")
    private BigDecimal underlinePrice;

    /** 结算价格 */
    @Excel(name = "结算价格")
    private BigDecimal salePrice;

    /** 会员价 */
    @Excel(name = "会员价")
    private BigDecimal memberPrice;

    /** 价值（成本价） */
    @Excel(name = "价值", readConverterExp = "成=本价")
    private BigDecimal costPrice;

    /** 退改费用 */
    @Excel(name = "退改费用")
    private BigDecimal backChangeFee;

    /** 展示顺序 */
    @Excel(name = "展示顺序")
    private Long sort;

    /** 默认选中 0否 1是 */
    @Excel(name = "默认选中 0否 1是")
    private Long defaultCheck;

    /** 是否启用 0未启用 1启用 */
    @Excel(name = "是否启用 0未启用 1启用")
    private String status;

    /** 是否已删除 0未删除 1已删除 */
    @Excel(name = "是否已删除 0未删除 1已删除")
    private Long deleted;

    /** 是否可退 0否 1是 */
    @Excel(name = "是否可退 0否 1是")
    private Long isBack;

    /** 是否必选 */
    @Excel(name = "是否必选")
    private String ischeck;

    /** 手续费规则数据(以json串存储） */
    @Excel(name = "手续费规则数据(以json串存储）")
    private String backRules;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private Long cremployeeid;

    /** 创建人姓名 */
    @Excel(name = "创建人姓名")
    private String cremployeeName;

    /** 创建时间 */
    @Excel(name = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operateTime;

    /** 维护人id */
    @Excel(name = "维护人id")
    private Long opemployeeid;

    /** 维护人姓名 */
    @Excel(name = "维护人姓名")
    private String opemployeeName;

    /** 起飞前xx小时，不展示改产品 */
    @Excel(name = "起飞前xx小时，不展示改产品")
    private Long flylimittime;

    /** 产品类型ID */
    @Excel(name = "产品类型ID")
    private Long productTypeid;

    /** 产品来源转换id */
    @Excel(name = "产品来源转换id")
    private Long convertId;

    /** 产品来源类型 1自营 2外购 */
    @Excel(name = "产品来源类型 1自营 2外购")
    private String sourceType;

    /** 详情说明富文本 */
    @Excel(name = "详情说明富文本")
    private String detailsfull;

    /** 适用航线 */
    @Excel(name = "适用航线")
    private String enableAirline;

    /** 不适用航线 */
    @Excel(name = "不适用航线")
    private String disabledAirline;

    /** 订单金额明细中单列出该项，不放在乘客下 0否 1是 */
    @Excel(name = "订单金额明细中单列出该项，不放在乘客下 0否 1是")
    private Long aloneShow;

    /** 产品维护版本日志id */
    @Excel(name = "产品维护版本日志id")
    private Long logId;

    /** 使用航班号组，格式：9C123|CA234234|，空值代表全部适用 */
    @Excel(name = "使用航班号组，格式：9C123|CA234234|，空值代表全部适用")
    private String flightno;

    /** 产品类型 1 保险，2空铁产品，3旅游券，4酒店券  5餐饮  6行李 */
    @Excel(name = "产品类型 1 保险，2空铁产品，3旅游券，4酒店券  5餐饮  6行李")
    private String productType;

    /** 产品图片地址，http://格式的 */
    @Excel(name = "产品图片地址，http://格式的")
    private String productimg;

    /** 产品类型图片地址，http://格式的 */
    @Excel(name = "产品类型图片地址，http://格式的")
    private String producttypeimg;

    /** 有效期开始计算参照时间。1当前时间，2航班起飞时间 */
    @Excel(name = "有效期开始计算参照时间。1当前时间，2航班起飞时间")
    private String validityType;

    /** 有效期时长，单位 天 */
    @Excel(name = "有效期时长，单位 天")
    private Long validity;

    /** 预定页面展示位置 1 竖排展示  2 优惠套餐展示*/
    @Excel(name = "预定页面展示位置 1 竖排展示  2 优惠套餐展示")
    private String showPosition;

    /** 到达开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到达开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date arriveDateStart;

    /** 到达结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到达结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date arriveDateEnd;

    /** 是否限制起飞时间 */
    @Excel(name = "是否限制起飞时间")
    private Long islimitDeparture;

    /** 是否限制到达时间 */
    @Excel(name = "是否限制到达时间")
    private Long islimitArrive;

    /** 强制提醒 */
    @Excel(name = "强制提醒")
    private String remaid;

    /** 详情说明 */
    @Excel(name = "详情说明")
    private String explain;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private String businessType;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setChannelId(Long channelId)
    {
        this.channelId = channelId;
    }

    public Long getChannelId()
    {
        return channelId;
    }
    public void setDescribe(String describe)
    {
        this.describe = describe;
    }

    public String getDescribe()
    {
        return describe;
    }
    public void setAirlines(String airlines)
    {
        this.airlines = airlines;
    }

    public String getAirlines()
    {
        return airlines;
    }

    public List<String> getAirlineList() {
        return airlineList;
    }

    public void setAirlineList(List<String> airlineList) {
        this.airlineList = airlineList;
    }

    public void setBuyMinnum(Long buyMinnum)
    {
        this.buyMinnum = buyMinnum;
    }

    public Long getBuyMinnum()
    {
        return buyMinnum;
    }
    public void setBuyMaxnum(Long buyMaxnum)
    {
        this.buyMaxnum = buyMaxnum;
    }

    public Long getBuyMaxnum()
    {
        return buyMaxnum;
    }
    public void setDatelimit(String datelimit)
    {
        this.datelimit = datelimit;
    }

    public String getDatelimit()
    {
        return datelimit;
    }
    public void setBookingDateStart(Date bookingDateStart)
    {
        this.bookingDateStart = bookingDateStart;
    }

    public Date getBookingDateStart()
    {
        return bookingDateStart;
    }
    public void setBookingDateEnd(Date bookingDateEnd)
    {
        this.bookingDateEnd = bookingDateEnd;
    }

    public Date getBookingDateEnd()
    {
        return bookingDateEnd;
    }
    public void setDepartureDateStart(Date departureDateStart)
    {
        this.departureDateStart = departureDateStart;
    }

    public Date getDepartureDateStart()
    {
        return departureDateStart;
    }
    public void setDepartureDateEnd(Date departureDateEnd)
    {
        this.departureDateEnd = departureDateEnd;
    }

    public Date getDepartureDateEnd()
    {
        return departureDateEnd;
    }
    public void setBindticketType(String bindticketType)
    {
        this.bindticketType = bindticketType;
    }

    public String getBindticketType()
    {
        return bindticketType;
    }
    public void setTicketType(String ticketType)
    {
        this.ticketType = ticketType;
    }

    public String getTicketType()
    {
        return ticketType;
    }
    public void setTripType(String tripType)
    {
        this.tripType = tripType;
    }

    public String getTripType()
    {
        return tripType;
    }
    public void setShowLocation(String showLocation)
    {
        this.showLocation = showLocation;
    }

    public String getShowLocation()
    {
        return showLocation;
    }
    public void setShowChannel(String showChannel)
    {
        this.showChannel = showChannel;
    }

    public String getShowChannel()
    {
        return showChannel;
    }
    public void setAgeMinnum(Long ageMinnum)
    {
        this.ageMinnum = ageMinnum;
    }

    public Long getAgeMinnum()
    {
        return ageMinnum;
    }
    public void setAgeMaxnum(Long ageMaxnum)
    {
        this.ageMaxnum = ageMaxnum;
    }

    public Long getAgeMaxnum()
    {
        return ageMaxnum;
    }
    public void setPriceType(String priceType)
    {
        this.priceType = priceType;
    }

    public String getPriceType()
    {
        return priceType;
    }
    public void setUnderlinePrice(BigDecimal underlinePrice)
    {
        this.underlinePrice = underlinePrice;
    }

    public BigDecimal getUnderlinePrice()
    {
        return underlinePrice;
    }
    public void setSalePrice(BigDecimal salePrice)
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice()
    {
        return salePrice;
    }
    public void setMemberPrice(BigDecimal memberPrice)
    {
        this.memberPrice = memberPrice;
    }

    public BigDecimal getMemberPrice()
    {
        return memberPrice;
    }
    public void setCostPrice(BigDecimal costPrice)
    {
        this.costPrice = costPrice;
    }

    public BigDecimal getCostPrice()
    {
        return costPrice;
    }
    public void setBackChangeFee(BigDecimal backChangeFee)
    {
        this.backChangeFee = backChangeFee;
    }

    public BigDecimal getBackChangeFee()
    {
        return backChangeFee;
    }
    public void setSort(Long sort)
    {
        this.sort = sort;
    }

    public Long getSort()
    {
        return sort;
    }
    public void setDefaultCheck(Long defaultCheck)
    {
        this.defaultCheck = defaultCheck;
    }

    public Long getDefaultCheck()
    {
        return defaultCheck;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setDeleted(Long deleted)
    {
        this.deleted = deleted;
    }

    public Long getDeleted()
    {
        return deleted;
    }
    public void setIsBack(Long isBack)
    {
        this.isBack = isBack;
    }

    public Long getIsBack()
    {
        return isBack;
    }
    public void setIscheck(String ischeck)
    {
        this.ischeck = ischeck;
    }

    public String getIscheck()
    {
        return ischeck;
    }
    public void setBackRules(String backRules)
    {
        this.backRules = backRules;
    }

    public String getBackRules()
    {
        return backRules;
    }

    public void setCremployeeid(Long cremployeeid)
    {
        this.cremployeeid = cremployeeid;
    }

    public Long getCremployeeid()
    {
        return cremployeeid;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public void setOperateTime(Date operateTime)
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime()
    {
        return operateTime;
    }
    public void setOpemployeeid(Long opemployeeid)
    {
        this.opemployeeid = opemployeeid;
    }

    public Long getOpemployeeid()
    {
        return opemployeeid;
    }
    public void setFlylimittime(Long flylimittime)
    {
        this.flylimittime = flylimittime;
    }

    public Long getFlylimittime()
    {
        return flylimittime;
    }
    public void setProductType(String productType)
    {
        this.productType = productType;
    }

    public String getProductType()
    {
        return productType;
    }
    public void setProductTypeid(Long productTypeid)
    {
        this.productTypeid = productTypeid;
    }

    public Long getProductTypeid()
    {
        return productTypeid;
    }
    public void setSourceType(String sourceType)
    {
        this.sourceType = sourceType;
    }

    public String getSourceType()
    {
        return sourceType;
    }
    public void setDetailsfull(String detailsfull)
    {
        this.detailsfull = detailsfull;
    }

    public String getDetailsfull()
    {
        return detailsfull;
    }
    public void setEnableAirline(String enableAirline)
    {
        this.enableAirline = enableAirline;
    }

    public String getEnableAirline()
    {
        return enableAirline;
    }
    public void setDisabledAirline(String disabledAirline)
    {
        this.disabledAirline = disabledAirline;
    }

    public String getDisabledAirline()
    {
        return disabledAirline;
    }

    public void setAloneShow(Long aloneShow)
    {
        this.aloneShow = aloneShow;
    }

    public Long getAloneShow()
    {
        return aloneShow;
    }
    public void setLogId(Long logId)
    {
        this.logId = logId;
    }

    public Long getLogId()
    {
        return logId;
    }
    public void setFlightno(String flightno)
    {
        this.flightno = flightno;
    }

    public String getFlightno()
    {
        return flightno;
    }

    public Long getConvertId() {
        return convertId;
    }

    public void setConvertId(Long convertId) {
        this.convertId = convertId;
    }

    public void setProductimg(String productimg)
    {
        this.productimg = productimg;
    }

    public String getProductimg()
    {
        return productimg;
    }
    public void setProducttypeimg(String producttypeimg)
    {
        this.producttypeimg = producttypeimg;
    }

    public String getProducttypeimg()
    {
        return producttypeimg;
    }
    public void setValidityType(String validityType)
    {
        this.validityType = validityType;
    }

    public String getValidityType()
    {
        return validityType;
    }
    public void setValidity(Long validity)
    {
        this.validity = validity;
    }

    public Long getValidity()
    {
        return validity;
    }
    public void setShowPosition(String showPosition)
    {
        this.showPosition = showPosition;
    }

    public String getShowPosition()
    {
        return showPosition;
    }
    public void setArriveDateStart(Date arriveDateStart)
    {
        this.arriveDateStart = arriveDateStart;
    }

    public Date getArriveDateStart()
    {
        return arriveDateStart;
    }
    public void setArriveDateEnd(Date arriveDateEnd)
    {
        this.arriveDateEnd = arriveDateEnd;
    }

    public Date getArriveDateEnd()
    {
        return arriveDateEnd;
    }
    public void setIslimitDeparture(Long islimitDeparture)
    {
        this.islimitDeparture = islimitDeparture;
    }

    public Long getIslimitDeparture()
    {
        return islimitDeparture;
    }
    public void setIslimitArrive(Long islimitArrive)
    {
        this.islimitArrive = islimitArrive;
    }

    public Long getIslimitArrive()
    {
        return islimitArrive;
    }
    public void setRemaid(String remaid)
    {
        this.remaid = remaid;
    }

    public String getRemaid()
    {
        return remaid;
    }
    public void setExplain(String explain)
    {
        this.explain = explain;
    }

    public String getExplain()
    {
        return explain;
    }
    public void setBusinessType(String businessType)
    {
        this.businessType = businessType;
    }

    public String getBusinessType()
    {
        return businessType;
    }


    public List<String> getShowLocationList() {
        return showLocationList;
    }

    public void setShowLocationList(List<String> showLocationList) {
        this.showLocationList = showLocationList;
    }

    public List<String> getTripTypeList() {
        return tripTypeList;
    }

    public void setTripTypeList(List<String> tripTypeList) {
        this.tripTypeList = tripTypeList;
    }

    public List<String> getShowChannelList() {
        return showChannelList;
    }

    public void setShowChannelList(List<String> showChannelList) {
        this.showChannelList = showChannelList;
    }

    public List<String> getBindticketTypeList() {
        return bindticketTypeList;
    }

    public void setBindticketTypeList(List<String> bindticketTypeList) {
        this.bindticketTypeList = bindticketTypeList;
    }

    public String getCremployeeName() {
        return cremployeeName;
    }

    public void setCremployeeName(String cremployeeName) {
        this.cremployeeName = cremployeeName;
    }

    public String getOpemployeeName() {
        return opemployeeName;
    }

    public void setOpemployeeName(String opemployeeName) {
        this.opemployeeName = opemployeeName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("channelId", getChannelId())
                .append("describe", getDescribe())
                .append("airlines", getAirlines())
                .append("buyMinnum", getBuyMinnum())
                .append("buyMaxnum", getBuyMaxnum())
                .append("datelimit", getDatelimit())
                .append("bookingDateStart", getBookingDateStart())
                .append("bookingDateEnd", getBookingDateEnd())
                .append("departureDateStart", getDepartureDateStart())
                .append("departureDateEnd", getDepartureDateEnd())
                .append("bindticketType", getBindticketType())
                .append("ticketType", getTicketType())
                .append("tripType", getTripType())
                .append("showLocation", getShowLocation())
                .append("showChannel", getShowChannel())
                .append("ageMinnum", getAgeMinnum())
                .append("ageMaxnum", getAgeMaxnum())
                .append("priceType", getPriceType())
                .append("underlinePrice", getUnderlinePrice())
                .append("salePrice", getSalePrice())
                .append("memberPrice", getMemberPrice())
                .append("costPrice", getCostPrice())
                .append("backChangeFee", getBackChangeFee())
                .append("sort", getSort())
                .append("defaultCheck", getDefaultCheck())
                .append("status", getStatus())
                .append("deleted", getDeleted())
                .append("isBack", getIsBack())
                .append("ischeck", getIscheck())
                .append("backRules", getBackRules())
                .append("cremployeeid", getCremployeeid())
                .append("operateTime", getOperateTime())
                .append("opemployeeid", getOpemployeeid())
                .append("flylimittime", getFlylimittime())
                .append("productType", getProductType())
                .append("productTypeid", getProductTypeid())
                .append("sourceType", getSourceType())
                .append("detailsfull", getDetailsfull())
                .append("enableAirline", getEnableAirline())
                .append("disabledAirline", getDisabledAirline())
                .append("aloneShow", getAloneShow())
                .append("logId", getLogId())
                .append("flightno", getFlightno())
                .append("productimg", getProductimg())
                .append("producttypeimg", getProducttypeimg())
                .append("validityType", getValidityType())
                .append("validity", getValidity())
                .append("showPosition", getShowPosition())
                .append("arriveDateStart", getArriveDateStart())
                .append("arriveDateEnd", getArriveDateEnd())
                .append("islimitDeparture", getIslimitDeparture())
                .append("islimitArrive", getIslimitArrive())
                .append("remaid", getRemaid())
                .append("explain", getExplain())
                .append("businessType", getBusinessType())
                .toString();
    }
}
